using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using Gratamira.CapaNegocio;

namespace Gratamira.Presentacion
{
    public partial class frmConReserva : Form
    {
        public string mUsuaAdmi;
        private DataSet dsGridDatos = new DataSet();
        private Reserva mReserva = new Reserva();

        public frmConReserva()
        {
            InitializeComponent();
            txtFechInic.Value = DateTime.Now.AddDays(-60);
            txtFechFina.Value = DateTime.Now;
            grdValores.DataSource = dsGridDatos;
            dsGridDatos.EnforceConstraints = false;
            llenarListas();
            //Instanciar la primera busqueda
            mReserva.leerReservas("", "", txtFechInic.DateTime, txtFechFina.DateTime, 'P',dsGridDatos);
            this.Text = Usuario.Empresa + " - Consulta Reservas de Inventario";
            configurarGrid();
            
        }

        private void configurarGrid()
        {
            UltraGridBand banda0 = grdValores.DisplayLayout.Bands["Reservas"];
            banda0.Columns["ReservaID"].Width = 40;
            banda0.Columns["ReservaID"].Header.Caption = "# Reserva";
            banda0.Columns["Fecha"].Width = 40;
            banda0.Columns["Nombre Tercero"].Width = 100;
            banda0.Columns["Referencia"].Width = 40;
            banda0.Columns["Observacion"].Width = 150;
            banda0.Columns["Estado"].Width = 30;

            UltraGridBand banda1 = grdValores.DisplayLayout.Bands["ResDetale"];
            banda1.Columns["ReservaID"].Hidden = true;
            //Reservado
            banda1.Columns["Reservado"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DoublePositive;
            banda1.Columns["Reservado"].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
            banda1.Columns["Reservado"].Format = "#,###,##0.00";
            //Saldo
            banda1.Columns["Saldo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DoublePositive;
            banda1.Columns["Saldo"].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
            banda1.Columns["Saldo"].Format = "#,###,##0.00";

        }

        private void btnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                //Validar que el periodo sea correcto
                DateTime tFechInic = txtFechInic.DateTime;
                DateTime tFechFina = txtFechFina.DateTime;
                char tEstado = Convert.ToChar(ddlEstado.Value);

                if (tFechFina >= tFechInic)
                {
                    //Instanciar clase Reserva
                    dsGridDatos.Clear();
                    mReserva.leerReservas(txtReservaID.Text, txtNombreTercero.Text, tFechInic, tFechFina, tEstado, dsGridDatos);
                }
                else
                {
                    MessageBox.Show("La fecha final debe ser mayor a la fecha final", "Consulta Reservas", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocurrio un error ejecutando la busqueda: " + ex.Message, "Consulta Reservas", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void cmdInsertar_Click(object sender, EventArgs e)
        {
            //Llamar a la maestra en modo insercion
            frmMaeReserva pantalla = new frmMaeReserva("", estadoPantalla.Insertar);
            pantalla.ShowDialog();
            btnConsultar.PerformClick();
        }

        private void grdValores_DoubleClickRow(object sender, DoubleClickRowEventArgs e)
        {
            if (grdValores.Rows.Count > 0)
            {
                if (grdValores.ActiveRow != null)
                {
                    try
                    {
                        string tReservaID = grdValores.ActiveRow.Cells["ReservaID"].Value.ToString();
                        frmMaeReserva tPantalla = new frmMaeReserva(tReservaID, estadoPantalla.Consultar);
                        tPantalla.mUsuaAdmi = this.mUsuaAdmi;
                        tPantalla.ShowDialog();
                        btnConsultar.PerformClick();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString());
                    }
                }
            }
        }

        private void llenarListas()
        {
            ddlEstado.Items.Add('P', "Pendientes");
            ddlEstado.Items.Add('C', "Confirmadas");
            ddlEstado.Items.Add('A', "Anuladas");
            ddlEstado.Items.Add('T', "Terminadas");
            ddlEstado.Items.Add('O', "Todas");
            ddlEstado.SelectedIndex = 0;
        }

        private void ddlEstado_ValueChanged(object sender, EventArgs e)
        {
            if (ddlEstado.SelectedIndex != -1)
            {
                btnConsultar.PerformClick();
            }
        }
    }
}